package com.tax.infrastructure.statemachine.builder;

import com.tax.infrastructure.statemachine.StateMachine;

/**
 * StateMachineBuilder
 *
 * @param <S>
 * @param <E>
 * @param <C>
 */
public interface StateMachineBuilder<S, E, C> {

    /**
     * builder for one transition
     *
     * @return
     */
    ExternalTransitionBuilder<S, E, C> externalTransition();

    StateMachine<S,E,C> build(String machineId);
}
